/*
定义一些初始值:username="root"passwd="123456"balance = 1000
实现一个简易的atm存取款系统1、登录成功才能进入系统
选择:
1、存钱
2、取钱--注意取钱的金额不能大于它的余额3、查询余额
4、退出整个系统
2、登录失败有三次重试机会!
把功能都封装成函数
*/
package main

import "fmt"

func main() {
	username := "root"
	password := "123456"
	balance := 1000

	var input_name, input_password string
	fmt.Println("请输入用户名：")
	fmt.Scan(&input_name)
	fmt.Println("请输入密码：")
	fmt.Scan(&input_password)

	if userLogin(username, password, input_name, input_password) {
		fmt.Println("登录成功")
		for {
			fmt.Println("欢迎进入atm系统")
			fmt.Println("请选择操作：")
			fmt.Println("1、存钱")
			fmt.Println("2、取钱")
			fmt.Println("3、查询余额")
			fmt.Println("4、退出整个系统")
			var choice int
			fmt.Scan(&choice)
			switch choice {
			case 1:
				saveMoney(&balance) //存钱
			case 2:
				withdrawMoney(&balance) //取钱
			case 3:
				queryBalance(balance) //查询余额
			case 4:
				fmt.Println("退出整个系统")
				return // 退出整个系统
			default:
				fmt.Println("请进行有效操作")
			}
		}
	} else {
		fmt.Println("登录失败")
	}
}

// 用户登录函数
func userLogin(username string, password string, input_name string, input_password string) bool {
	chanceCnt := 1
	for chanceCnt <= 3 {
		if password == input_password && username == input_name {
			return true
		}
		chanceCnt++
	}
	return false
}

// 存钱函数
func saveMoney(balance *int) {
	fmt.Println("请输入存款金额：")
	var money int
	fmt.Scan(&money)
	if money <= 0 {
		fmt.Println("存款金额不得小于0！")
		return
	}
	*balance += money
	fmt.Printf("存款成功，账户余额为：%d\n", *balance)
}

// 取钱函数
func withdrawMoney(balance *int) {
	fmt.Println("请输入取款金额：")
	var money int
	fmt.Scan(&money)
	if money <= 0 {
		fmt.Println("取款金额必须大于0！")
		return
	}
	if money > *balance {
		fmt.Println("取款金额不能大于账户余额！")
		return
	}
	*balance -= money
	fmt.Printf("取款成功，账户余额为：%d\n", *balance)
}

// 查询余额函数
func queryBalance(balance int) {
	fmt.Printf("账户余额为：%d\n", balance)
}
